Gaussian Weighted Moving Average with Forecast [CHE]Presentation for TradingView: Gaussian Weighted Moving Average with Forecast
Introduction
Welcome to our presentation on the "Gaussian Weighted Moving Average with Forecast" (GWMA). This script, written in Pine Script™, offers an enhanced method for analyzing and predicting price movements on TradingView. The script combines Gaussian Weighted Moving Averages and polynomial regression to provide accurate and customizable forecasts.
Overview
Title: Gaussian Weighted Moving Average with Forecast
Author: chervolino
License: Mozilla Public License 2.0
Main Features
1. Gaussian Weighted Moving Average (GWMA):
- Calculates a weighted moving average using a Gaussian weighting function.
- Parameters for length and standard deviation allow fine-tuning of the smoothing effect.
2. Polynomial Regression with Forecast:
- Creates a model to predict future price movements.
- Adjustable length and degree of polynomial regression.
- Option to extrapolate predictions and visualize them.
3. Visual Representation:
- Uses lines and colors to depict trend changes.
- Customizable colors for upward and downward trends.
Input Parameters
Length: Length of the moving average (default: 50)
Standard Deviation: Standard deviation for Gaussian weighting (default: 10.0)
Width: Width of the plotted lines (default: 1)
Colors: Customizable colors for upward and downward trends
Forecast Length: Length of the forecast period (default: 20)
Extrapolate Length: Length of the extrapolation (default: 50)
Polynomial Degree: Degree of the polynomial regression (default: 3)
Lock Forecast: Option to lock and stabilize the forecast
Core Algorithms
1. Gaussian Weight Calculation:
gaussian_weight(x, std_dev) =>
1 / (std_dev * math.sqrt(2 * math.pi)) * math.exp(-0.5 * math.pow(x / std_dev, 2))
2. GWMA Calculation:
calculate_gwma(length, std_dev) =>
// Algorithm to calculate the weighted moving average
3. Initialize Lines for Polynomial Regression:
initialize_lines_array(extrapolate, length) =>
// Initialize array lines
4. Create Design Matrix for Polynomial Regression:
get_design_matrix(length, degree) =>
// Create the design matrix
5. Calculate and Plot Polynomial Regression:
calculate_polynomial_regression(src, length, degree, extrapolate, lines_arr, lock, width, upward_color, downward_color) =>
// Algorithm to calculate polynomial regression and plot the forecast
Combining Indicators: Originality and Usefulness
The combination of Gaussian Weighted Moving Average and polynomial regression provides traders with a robust tool for trend analysis and prediction. The GWMA smooths out price data while emphasizing recent prices, making it sensitive to short-term trends. Polynomial regression, on the other hand, offers a mathematical approach to model and forecast future prices based on historical data. By integrating these two methodologies, traders can achieve a more comprehensive view of market trends and potential future movements, making the tool highly valuable for decision-making.
Explanation for Users
Most TradingView users are not familiar with Pine Script, so a clear description is essential for understanding how to use the script.
Gaussian Weighted Moving Average (GWMA): This indicator calculates a moving average using Gaussian weights, which gives more importance to recent prices. The length and standard deviation parameters allow users to control the sensitivity and smoothness of the average.
Polynomial Regression with Forecast: This feature uses polynomial regression to model the price trend and predict future movements. Users can adjust the length of the historical data used, the degree of the polynomial, and the length of the forecast. The script plots these predictions, making it easier for traders to visualize potential future price paths.
Visualization of Results
1. GWMA Plotting:
plot(gaussian_ma_result, title="GWMA", color=line_color, linewidth=width_input)
2. Forecast Extrapolation:
plot(forecast_val, 'Extrapolation', offset=extrapolate_setting, linewidth=width_input, style=plot.style_circles)
Conclusion
The "Gaussian Weighted Moving Average with Forecast" script provides a powerful tool for analyzing and predicting price movements on TradingView. By combining Gaussian weighting and polynomial regression, it offers a precise and customizable method for trend analysis and forecasting.
Thank you for your attention! For any questions or further information, please feel free to reach out.
Cari dalam skrip untuk "the script"
Supports & Resistances [UAlgo]The "Supports & Resistances " indicator is designed to identify and visualize key support and resistance levels on the price chart. It utilizes the Average True Range (ATR) and Pivot Points to define the boundaries of S & R zones and considers historical price action to assess the strength of these zones.
🔶 How to Obtain Zones
The script continuously analyzes the price action and identifies potential support and resistance zones based on the following criteria:
Zone Creation: For swing highs, a zone is created with the high price at the zone length as the top and the top minus the Average True Range (ATR) as the bottom. Conversely, for swing lows, the zone is created with the low price at the zone length as the bottom and the low plus the ATR as the top.
Zone Strength Calculation: The script iterates through historical bars within the zone and counts how many times the price (low for support, high for resistance) touched but failed to break entirely through the zone. This count is assigned as the zone's "strength".
Zone Display and Removal: It identifying zones by assigning a "strength" value based on how many times the price has approached but failed to break the zone. This helps prioritize stronger potential support/resistance levels. Only zones exceeding the defined "strength threshold" are visually displayed on the chart. Weaker zones or those broken by price are automatically removed.
🔶 Parameters
Zone Length: Traders can adjust S & R detection sensitivity, length to be used to find pivot points.
Strength Threshold: Set the minimum number of times the price needs to touch but fail to break a zone for it to be considered "strong" and displayed.
Visual Settings: Tailor the appearance of the support/resistance zones by defining separate colors and text size for borders, backgrounds, and zone text.
🔶 Disclaimer
The "Supports & Resistances " indicator is provided for educational and informational purposes only.
It should not be considered as financial advice or a recommendation to buy or sell any financial instrument.
The use of this indicator involves inherent risks, and users should employ their own judgment and conduct their own research before making any trading decisions. Past performance is not indicative of future results.
🔷 Related Scripts
Support and Resistance with Signals
ATR Based Support and Resistance Zones
Cumulative Volume Delta LineThis script is a refined version of TradingView's Cumulative Volume Delta (CVD) indicator. It features a CVD line for lower time frames and automatically switches to a Simple Moving Average (SMA) line on daily time frames and higher. This functionality makes it easier to spot Volume Delta divergences on daily charts while maintaining utility on intraday time frames.
Key Features:
Line Chart and Oscillator Configuration: Unlike TradingView's standard CVD, this script can be configured as a line chart or an oscillator, enhancing flexibility and usability.
Line chart for easier divergence spotting: The line chart format is preferred for spotting divergences, providing a clearer visual representation compared to other formats.
Accurate Calculations: Many older community CVD scripts use approximate calculations that can be inaccurate. This script leverages TradingView's own calculations, which are the most accurate available without tick data feeds.
Intraday and Daily Adaptation: The Traditional CVD script is a per bar volume delta on Daily and higher timeframes and cumulative volume delta for intraday session timeframes which makes it very hard to spot divergences on higher timeframes. This script resolves that by using an SMA on daily time frames and higher.
Auto-Switching Feature: The script intelligently switches between the CVD line and the SMA line based on the active time frame. This feature can be toggled off if you prefer to use the CVD on all time frames or the SMA on all time frames.
Customizable Settings: Building on TradingView's CVD script, this version includes all the same settings in addition to the new auto-switch, SMA length etc.
About Volume Delta and Cumulative Volume Delta:
Volume Delta is the difference between the buying and selling volume within a specified period. It helps traders understand the net buying or selling pressure in the market. A positive volume delta indicates more buying activity, while a negative volume delta indicates more selling activity.
Cumulative Volume Delta (CVD) aggregates the volume delta over time to provide a running total. This cumulative approach helps traders see the overall buying and selling pressure trends, making it easier to identify potential reversals or continuations in the market trend.
NVT Z-ScoreNVT Z-Score Script:
Data Source and Calculation: This script calculates the NVT ratio by dividing the market cap (assumed from QUANDL data) by a 90-day MA of the transaction volume (also from QUANDL), similar to the NVTS calculation. However, the adaptation lies in further analyzing the NVT ratio through a Z-score approach, not explicitly described in the original NVTS methodology.
Z-Score Analysis: The script calculates the mean and standard deviation of the NVT ratio over a user-defined period (daysForMean, defaulting to 180 days) and then computes the Z-score of the current NVT ratio relative to this historical data. This Z-score analysis introduces a standardized way of understanding the NVT ratio's deviation from its historical average, offering a nuanced view of market valuation states.
Visualization and Dynamic Zones: The visualization emphasizes Z-score-based dynamic zones (green, yellow, and red), determined by the stdDevMultiplier. These zones are plotted and filled on the chart, providing visual cues for interpreting the NVT ratio's current state in relation to its historical norm. This aspect significantly differs from the traditional NVTS approach by directly incorporating the concept of standard deviation and Z-scores into the analysis.
TrendLine Toolkit w/ Breaks (Real-Time)The TrendLine Toolkit script introduces an innovating capability by extending the conventional use of trendlines beyond price action to include oscillators and other technical indicators. This tool allows traders to automatically detect and display trendlines on any TradingView built-in oscillator or community-built script, offering a versatile approach to trend analysis. With breakout detection and real-time alerts, this script enhances the way traders interpret trends in various indicators.
🔲 Methodology
Trendlines are a fundamental tool in technical analysis used to identify and visualize the direction and strength of a price trend. They are drawn by connecting two or more significant points on a price chart, typically the highs or lows of consecutive price movements (pivots).
Drawing Trendlines:
Uptrend Line - Connects a series of higher lows. It signals an upward price trend.
Downtrend Line - Connects a series of lower highs. It indicates a downward price trend.
Support and Resistance:
Support Line - A trendline drawn under rising prices, indicating a level where buying interest is historically strong.
Resistance Line - A trendline drawn above falling prices, showing a level where selling interest historically prevails.
Identification of Trends:
Uptrend - Prices making higher highs and higher lows.
Downtrend - Prices making lower highs and lower lows.
Sideways (or Range-bound) - Prices moving within a horizontal range.
A trendline helps confirm the existence and direction of a trend, providing guidance in aligning with the prevailing market sentiment. Additionally, they are usually paired with breakout analysis, a breakout occurs when the price breaches a trendline. This signals a potential change in trend direction or an acceleration of the existing trend.
The script adapts this methodology to oscillators and other indicators. Instead of relying on price pivots, which can only be detected in retrospect, the script utilizes a trailing stop on the oscillator to identify potential swings in real-time, you may find more info about it here (SuperTrend toolkit) . We detect swings or pivots simply by testing for crosses between the indicator and its trailing stop.
type oscillator
float o = Oscillator Value
float s = Trailing Stop Value
oscillator osc = oscillator.new()
bool l = ta.crossunder(osc.o, osc.s) => Utilized as a formed high
bool h = ta.crossover (osc.o, osc.s) => Utilized as a formed low
This approach enables the algorithm to detect trendlines between consecutive pivot highs or lows on the oscillator itself, providing a dynamic and immediate representation of trend dynamics.
🔲 Breakout Detection
The script goes beyond trendline creation by incorporating breakout detection directly within the oscillator. After identifying a trendline, the algorithm continuously monitors the oscillator for potential breakouts, signaling shifts in market sentiment.
🔲 Setup Guide
A simple example on one of my public scripts, Z-Score Heikin-Ashi Transformed
🔲 Settings
Source - Choose an oscillator source of which to base the Toolkit on.
Zeroing - The Mid-Line value of the oscillator, for example RSI & MFI use 50.
Sensitivity - Calibrates the Sensitivity of which TrendLines are detected, higher values result in more detections.
🔲 Alerts
Bearish TrendLine
Bullish TrendLine
Bearish Breakout
Bullish Breakout
As well as the option to trigger 'any alert' call.
By integrating trendline analysis into oscillators, this Toolkit enhances the capabilities of technical analysis, bringing a dynamic and comprehensive approach to identifying trends, support/resistance levels, and breakout signals across various indicators.
Fractional Differentiation█ Description
This Pine Script indicator implements fractional differentiation, a mathematical operation that extends the concept of differentiation to non-integer orders. Fractional differentiation is particularly significant in financial analysis, as it enables analysts to uncover underlying patterns in price series that are not evident with traditional integer-order differentiation. The motivation behind fractional differencing lies in its ability to balance the trade-off between retaining data/feature memory and ensuring stationarity.
█ Significance
Fractional differentiation offers a nuanced view of market data, allowing for the adjustment of the differentiation order to balance between signal clarity and noise reduction. This is especially useful in financial markets, where the choice of differentiation order can highlight long-term trends or short-term price movements without completely smoothing out the valuable market noise.
█ Approximations Used
The implementation relies on the Gamma function for the computation of coefficients in the fractional differentiation formula. Given the complexity of the Gamma function, this script uses an approximation method based on the Lanczos approximation for the logarithm of the Gamma function, as detailed in "An Analysis Of The Lanczos Gamma Approximation" by Glendon Ralph Pugh (2004). This approximation strikes a balance between computational efficiency and accuracy, making it suitable for real-time market analysis in Pine Script.
█ Limitations
While this script opens new avenues for market analysis, it comes with inherent limitations:
- The approximation of the Gamma function, although accurate, is not exact. The precision of the fractional differentiation result may vary slightly, especially for higher-order differentiations.
- The script's performance is subject to Pine Script's execution environment, with a default loop limit set to 100 iterations for practicality. Users might need to adjust this limit based on their specific use case, balancing between computational load and the desired depth of historical data analysis.
█ Credits
This script makes use of the `MathSpecialFunctionsGamma` library, authored by Ricardo Santos . This library provides essential mathematical functions, including an approximation of the Gamma function, which is crucial for the fractional differentiation calculation.
I also extend my sincere gratitude to
Dr. Marcos López de Prado for his seminal work, Advances in Financial Machine Learning (2018). Dr. López de Prado's insights have significantly influenced our approach to developing sophisticated analytical tools.
Dr. Ernie Chan for his freely and generously sharing valuable insights via discourse on quantitative trading strategies through his talks and publications.
Liquidity SpotterIndicator Setup:
The script sets up a TradingView indicator titled "Liquidity Spotter" with a short title "PWWTC LS". It's designed to overlay on the price chart (overlay=true).
Input Variables:
The script defines input variables that allow users to customize the behavior of the indicator:
atr_length: Length of the Average True Range (ATR) used in calculations.
volume_multiplier: Multiplier used to compare the volume of the current bar with the average volume.
range_multiplier: Multiplier used to calculate the range condition.
highlight_color: Color used to highlight bars when conditions are met.
Calculations:
The script calculates the ATR and average volume using the ta.atr and ta.sma functions provided by TradingView's Pine Script.
It sets the avg_range to the value of the ATR, essentially making it the same as atr_value.
Conditions:
The script checks several conditions based on the calculated values:
range_condition: Compares the range (high - low) of the current bar with the average range multiplied by the range multiplier.
volume_condition: Compares the volume of the current bar with the average volume multiplied by the volume multiplier.
range_volume_condition: Compares the ratio of range to volume with the ratio of average range to average volume.
Plotting:
Based on the conditions being met or not, the script sets the color of the price bars. If all conditions are met, the color of the bars will be set to highlight_color, otherwise, it will remain unchanged (na).
Overall, this script visually highlights price bars on the chart where specific conditions related to range, volume, and their ratio are met, potentially indicating trading opportunities.
Bitcoin Momentum StrategyThis is a very simple long-only strategy I've used since December 2022 to manage my Bitcoin position.
I'm sharing it as an open-source script for other traders to learn from the code and adapt it to their liking if they find the system concept interesting.
General Overview
Always do your own research and backtesting - this script is not intended to be traded blindly (no script should be) and I've done limited testing on other markets beyond Ethereum and BTC, it's just a template to tweak and play with and make into one's own.
The results shown in the strategy tester are from Bitcoin's inception so as to get a large sample size of trades, and potential returns have diminished significantly as BTC has grown to become a mega cap asset, but the script includes a date filter for backtesting and it has still performed solidly in recent years (speaking from personal experience using it myself - DYOR with the date filter).
The main advantage of this system in my opinion is in limiting the max drawdown significantly versus buy & hodl. Theoretically much better returns can be made by just holding, but that's also a good way to lose 70%+ of your capital in the inevitable bear markets (also speaking from experience).
In saying all of that, the future is fundamentally unknowable and past results in no way guarantee future performance.
System Concept:
Capture as much Bitcoin upside volatility as possible while side-stepping downside volatility as quickly as possible.
The system uses a simple but clever momentum-style trailing stop technique I learned from one of my trading mentors who uses this approach on momentum/trend-following stock market systems.
Basically, the system "ratchets" up the stop-loss to be much tighter during high bearish volatility to protect open profits from downside moves, but loosens the stop loss during sustained bullish momentum to let the position ride.
It is invested most of the time, unless BTC is trading below its 20-week EMA in which case it stays in cash/USDT to avoid holding through bear markets. It only trades one position (no pyramiding) and does not trade short, but can easily be tweaked to do whatever you like if you know what you're doing in Pine.
Default parameters:
HTF: Weekly Chart
EMA: 20-Period
ATR: 5-period
Bar Lookback: 7
Entry Rule #1:
Bitcoin's current price must be trading above its higher-timeframe EMA (Weekly 20 EMA).
Entry Rule #2:
Bitcoin must not be in 'caution' condition (no large bearish volatility swings recently).
Enter at next bar's open if conditions are met and we are not already involved in a trade.
"Caution" Condition:
Defined as true if BTC's recent 7-bar swing high minus current bar's low is > 1.5x ATR, or Daily close < Daily 20-EMA.
Trailing Stop:
Stop is trailed 1 ATR from recent swing high, or 20% of ATR if in caution condition (ie. 0.2 ATR).
Exit on next bar open upon a close below stop loss.
I typically use a limit order to open & exit trades as close to the open price as possible to reduce slippage, but the strategy script uses market orders.
I've never had any issues getting filled on limit orders close to the market price with BTC on the Daily timeframe, but if the exchange has relatively low slippage I've found market orders work fine too without much impact on the results particularly since BTC has consistently remained above $20k and highly liquid.
Cost of Trading:
The script uses no leverage and a default total round-trip commission of 0.3% which is what I pay on my exchange based on their tier structure, but this can vary widely from exchange to exchange and higher commission fees will have a significantly negative impact on realized gains so make sure to always input the correct theoretical commission cost when backtesting any script.
Static slippage is difficult to estimate in the strategy tester given the wide range of prices & liquidity BTC has experienced over the years and it largely depends on position size, I set it to 150 points per buy or sell as BTC is currently very liquid on the exchange I trade and I use limit orders where possible to enter/exit positions as close as possible to the market's open price as it significantly limits my slippage.
But again, this can vary a lot from exchange to exchange (for better or worse) and if BTC volatility is high at the time of execution this can have a negative impact on slippage and therefore real performance, so make sure to adjust it according to your exchange's tendencies.
Tax considerations should also be made based on short-term trade frequency if crypto profits are treated as a CGT event in your region.
Summary:
A simple, but effective and fairly robust system that achieves the goals I set for it.
From my preliminary testing it appears it may also work on altcoins but it might need a bit of tweaking/loosening with the trailing stop distance as the default parameters are designed to work with Bitcoin which obviously behaves very differently to smaller cap assets.
Good luck out there!
Fusion Traders - RSI Overbought/Oversold + Divergence IndicatorFusion Traders - RSI Overbought/Oversold + Divergence Indicator - new version
This indicator has lots of various add ons.
RSI overbought / oversold with changeable inputs
Divergence indicator
DESCRIPTION:
This script combines the Relative Strength Index ( RSI ), Moving Average and Divergence indicator to make a better decision when to enter or exit a trade.
- The Moving Average line (MA) has been made hidden by default but enhanced with an RSIMA cloud.
- When the RSI is above the selected MA it turns into green and when the RSI is below the select MA it turns into red.
- When the RSI is moving into the Overbought or Oversold area, some highlighted areas will appear.
- When some divergences or hidden divergences are detected an extra indication will be highlighted.
- When the divergence appear in the Overbought or Oversold area the more weight it give to make a decision.
- The same colour pallet has been used as the default candlestick colours so it looks familiar.
HOW TO USE:
The prerequisite is that we have some knowledge about the Elliot Wave Theory, the Fibonacci Retracement and the Fibonacci Extension tools.
We are hoping you like this indicator and added to your favourite indicators. If you have any question then comment below, and I'll do my best to help.
FEATURES:
• You can show/hide the RSI .
• You can show/hide the MA.
• You can show/hide the lRSIMA cloud.
• You can show/hide the Stoch RSI cloud.
• You can show/hide and adjust the Overbought and Oversold zones.
• You can show/hide and adjust the Overbought Extended and Oversold Extended zones.
• You can show/hide the Overbought and Oversold highlighted zones.
HOW TO GET ACCESS TO THE SCRIPT:
• Favorite the script and add it to your chart.
BreakoutTrendFollowingINFO:
The "BreakoutTrendFollowing" indicator is a comprehensive trading system designed for trend-following in various market environments. It combines multiple technical indicators, including Moving Averages (MA), MACD, and RSI,
along with volume analysis and breakout detection from consolidation, to identify potential entry points in trending markets. This strategy is particularly effective for assets that exhibit strong trends and significant price movements.
Note that using the consolidation filter reduces the amount of entries the strategy detects significantly, and needs to be used if we want to have an increased confidence in the trend via breakout.
However, the strategy can be easily transformed to various only trend-following strategies, by applying different filters and configurations.
The indicator can be used to connect to the Signal input of the TTS (TempalteTradingStrategy) by jason5480 in order to backtest it, thus effectively turning it into a strategy (instructions below in TTS CONNECTIVITY section)
DETAILS:
The strategy's core is built upon several key components:
Moving Average (MA): Used to determine the general trend direction. The strategy checks if the price is above the selected MA type and length.
MACD Filter: Analyzes the relationship between two moving averages to confirm the trend's momentum.
Consolidation Detection: Identifies periods of price consolidation and triggers trades on breakouts from these ranges.
Volume Analysis: Assesses trading volume to confirm the strength and validity of the breakout.
RSI: Used to avoid overbought conditions, ensuring trades are entered in favorable market situations.
Wick filters: make sure there is not a long wick that indicates selling pressure from above
The strategy generates buy signals when several conditions are met concurrently (each one of them can be individually enabled/disabled)"
The price is above the selected MA.
A breakout occurs from a configurable consolidation range.
The MACD line is above the signal line, indicating bullish momentum.
The RSI is below the overbought threshold.
There's an increase in trading volume, confirming the breakout's strength.
Currently the strategy fires SL signals, as the approach is to check for loss of momentum - i.e. crossunder of the MACD line and signal line, but that is to everyone to determine the exit conditions.
The buy and SL signals are set on the chart using green or orange triangles on the below/above the price action.
SETTINGS:
Users can customize various parameters, including MA type and period, MACD settings, consolidation length, and volume increase percentage. The strategy is equipped with alert conditions for both entry (buy signals) and exit (set stop loss) points, facilitating both manual and automated trading.
Each one of the technical indicators, as well as the consilidation range and breakout/wick settings can be configured and enabled/disabled individually.
Please thoroughly review the available settings of the script, but here is an outline of the most important ones:
Use bar wicks (instead of open/close) - the ref_high/low will be taken based on the bar wicks, rather than the open/close when determining the breakout and MA
Enter position only on green candles - additional filters to make sure that we enter only on strong momentum
MA Filter: (enable, source, type, length) - general settings for MA filter to be checked against the stock price (close or upper wick)
MACD Filter: (enable, source, Osc MA type, Signal MA type, Fast MA length, Slow MA length, Low MACD Hist) - detailed settings for fine MACD tuning
Consolidation:
Consolidation Type: we have two different ways of detecting the consolidation, note the types below.
CONSOLIDATION_BASIC - consolidation areas by looking for the pivot point of a trend and counts the number of bars that have not broken the consolidation high/low levels.
CONSOLIDATIO_RANGE_PERCENT - identifies consolidation by comparing the range between the highest and lowest price points over a specified period.
So in summary the CONSOLIDATIO_RANGE_PERCENT uses a percentage-based range to define consolidation, while CONSOLIDATION_BASIC uses a count of bars within a high-low range to establish consolidation.
Thus the former is more focused on the tightness of the price range, whereas the latter emphasizes the duration of the consolidation phase.
The CONSOLIDATIO_RANGE_PERCENT might be more sensitive to recent price movements and suitable for shorter-term analysis, while CONSOLIDATION_BASIC could be better for identifying longer-term consolidation patterns.
Min consolidation length - applicable for CONSOLIDATION_BASIC case, the min number of bars for the price to be in the range to consider consolidation
Consolidation Loopback period - applicable for CONSOLIDATION_BASIC case, the loopback number of bars to look for consolidation
Consolidation Range percent - applicable for CONSOLIDATIO_RANGE_PERCENT, the percent between the high and low in the range to consider consolidation
Plot consolidation - enables plotting of the consolidation (only for debug purposes)
Breakout: (enable, low, high) - the definition of the breakout from the previous consolidation range, the price should be between to determine the breakout as successfull
Upper wick: (enable, percent) - defines the percent of the upper wick compared to the whole candle to allow breakout (if the wick is too big part of the candle we can consider entering the position riskier)
RSI: (enable, length, overbought) - general settings for RSI TA
Volume (enbale, percentage increase, average volume filter en, loopback bars) - percentage of increase of the volume to consider for a breakout. There are two modes - percentage increase compared to the previous bar, or percentage against the average volume for the last loopback bars.
Note that there are many different configuration that you can play with, and I believe this is the strength of the strategy, as it can provide a single solution for different cases and scenarios.
My advice is to try and play with the different options for different markets based on the approach you want to implement and try turning features on/off and tuning them further.
TTS SETTINGS (NEEDED IF USED TO BACKTEST WITH TTS):
The TempalteTradingStrategy is a strategy script developed in Pine by jason5480, which I recommend for quick turn-around of testing different ideas on a proven and tested framework
I cannot give enough credit to the developer for the efforts put in building of the infrastructure, so I advice everyone that wants to use it first to get familiar with the concept and by checking
by checking jason5480's profile www.tradingview.com
The TTS itself is extremely functional and have a lot of properties, so its functionality is beyond the scope of the current script -
Again, I strongly recommend to be thoroughly explored by everyone that plans on using it.
In the nutshell it is a script that can be feed with buy/sell signals from an external indicator script and based on many configuration options it can determine how to execute the trades.
The TTS has many settings that can be applied, so below I will cover only the ones that differ from the default ones, at least according to my testing - do your own research, you may find something even better :)
The current/latest version that I've been using as of writing and testing this script is TTSv48
Settings which differ from the default ones:
Deal Conditions Mode - External (take enter/exit conditions from an external script)
🔌Signal 🛈➡ - BreakoutTrendFollowing: 🔌Signal to TTS (this is the output from the indicator script, according to the TTS convention)
Order Type - STOP (perform stop order)
Distance Method - HHLL (HigherHighLowerLow - in order to set the SL according to the strategy definition from above)
The next are just personal preferences, you can feel free to experiment according to your trading style
Take Profit Targets - 0 (either 100% in or out, no incremental stepping in or out of positions)
Dist Mul|Len Long/Short- 10 (make sure that we don't close on profitable trades by any reason)
Quantity Method - EQUITY (personal backtesting preference is to consider each backtest as a separate portfolio, so determine the position size by 100% of the allocated equity size)
Equity % - 100 (note above)
PB wTF50What kind of traders/investors are we?
We are trend followers, always on the lookout for the next big move in the market. Our scripts are meticulously crafted for higher timeframes (daily, weekly, monthly) aiming to capture the large market trends.
What does this script do?
The Pb wTF50 script simplifies the complex world of investing by colour-coding bars to indicate the trend direction. Green bars signify a bullish trend, red indicates a bearish trend, and a combination of both signifies a sideways market. This visual representation ensures investors can quickly gauge the market's direction and act accordingly.
How is the PB wTF50 produced?
The PB wTF50 script employs the simple moving averages (SMAs) as its backbone. Bars positioned above both the SMAs turn green, indicating a bullish trend. Conversely, bars below these SMAs turn red, signalling a bearish trend.
What is the best timeframe to use the script?
The PB wTF50 script is designed for the weekly timeframe. This ensures that traders and investors are aligned with the long-term market trend, filtering out the noise of shorter timeframes.
What makes this script unique?
The challenges of identifying the onset, progression, and culmination of trends are well-known in the investing community. The PbF script addresses these challenges head-on.
The PB wTF50 is not a lagging indicator. It is aligned with price movement, which helps investors and traders focus on what the asset’s price is doing. The asset’s price is the primary indicator of its direction.
Lagging indicators can be used alongside the PB wTF50 to confirm the asset’s direction.
The PBwTF50 continues to remain green during extended periods of bullish pullbacks and red during extended periods of bearish pullbacks. This helps investors and traders hold positions during corrections in the market.
When interacting with OB/OS zones, investors and traders are positioned to align with the trend and ignore short-term fluctuations against the trend.
The PB wTF50 can be used to enter additional positions, also known as compounding, when an asset’s price has pulled back into an OS zone, but the trend filter has remained green in a bull trend/OB zone, but the trend filter has remained red in a bear trend.
In essence, the PB wTF50 script is a trend filter that gives investors and traders the ability to apply discretion with the start and end of long-term trends as they develop.
41-80 F&O MA ScreenerThis Pine Script is a TradingView indicator named "41-80-F&O EMA Screener." It calculates and displays four moving averages (MA1, MA2, MA3, and MA4) and the Relative Strength Index (RSI) on a chart. The script generates buy and short signals based on certain conditions involving the moving averages and RSI. Additionally, it includes a screener section that displays a table of symbols with buy and short signals.
Here's a breakdown of the key components:
Moving Averages (MAs):
MA1: Simple Moving Average with length len1 (green line).
MA2: Simple Moving Average with length len2 (red line).
MA3: Simple Moving Average with length len3 (orange line).
MA4: Simple Moving Average with length len4 (black line).
Relative Strength Index (RSI):
The RSI is calculated with a length of rsiLengthInput and a source specified by rsiSourceInput.
Conditions for Buy and Short Signals:
Buy Signal: When MA1 is above MA2 and MA3, and RSI is above 50.
Short Signal: When MA1 is below MA2 and MA3, and RSI is below 50.
Signal Plots:
Buy signals are plotted as "B" below the corresponding bars.
Short signals are plotted as "S" above the corresponding bars.
Background Coloring:
Bars are colored based on their opening and closing prices.
Screener Section:
The script defines a watchlist (gticker) with 40 predefined symbols.
It then calls the getSignal function for each symbol to identify buy and short signals.
The results are displayed in a table with long signals in green and short signals in red.
Table Theming:
The script allows customization of the table's background, frame, and text colors, as well as the text size.
The table's location on the chart can also be customized.
Please note that the script uses the Mozilla Public License 2.0. Make sure to review and comply with the terms of this license if you plan to use or modify the script.
Candle size in pipsDescription
Enhance your trading strategy with precision using this script, designed to measure the range of a candle from wick to wick in pips. Whether you're implementing a specific pip requirement within a candle for your strategy, or simply seeking to better understand market dynamics, this tool provides valuable insights. The script is calculating the amount of pips between the high and the low then compares it to the minimal size you declared. If the amount of pips is more or equal to minimal size it will show the label.
Features
Alert Functionality: Opt to receive alerts by checking the checkbox (default: false).
Customizable Pip Threshold: Tailor the script to your needs by setting the minimum required pips to display on the screen (default: 12).
Different shape: circle, triangle up, triangle down, none
How to Use
Personalize your trading approach by integrating this script with your preferred strategy. For instance, in my strategy involving a 3M continuation, I leverage this tool to determine the pip count of the M15 candle before making entry decisions.
Note: Ensure you understand your strategy's requirements and adjust the script settings accordingly for optimal result s.
Feel free to reach out if you have any questions or require further assistance in maximizing the utility of this script.
COT MCIThe COT MCI script is a market indicator based on the data from the Commitment of Traders Reports.
Integration of COT Report Data:
The script sources COT data from futures contracts, including:
Treasury Bonds (ZB), Dollar Index (DX), 10-Year Treasury Notes (ZN)
Commodities like Soybeans (ZS), Soy Meal (ZM), Soy Oil (ZL), Corn (ZC), Wheat (ZW), Kansas City Wheat (KE), Pork (HE), Cattle (LE)
Precious Metals such as Gold (GC), Silver (SI), Palladium (PA), Platinum (PL)
Industrial Metals like Copper (HG), Aluminum (AUP), Steel (HRC)
Energy Products like Crude Oil (CL), Heating Oil (HO), Gasoline (RB), Natural Gas (NG), Brent Crude (BB)
Currencies such as AUD (6A), GBP (6B), CAD (6C), EUR (6E), JPY (6J), CHF (6S), NZD (6N), BRL (6L), MXN (6M), RUB (6R), ZAR (6Z)
Others: Sugar (SB), Coffee (KC), Cocoa (CC), Cotton (CT), Ethanol (EH), Rice (ZR), Oats (ZO), Whey (DC), Orange Juice (OJ), Lumber (LBS), Livestock (GF), E-mini S&P 500 (ES), E-mini Russell 2000 (RTY), E-mini Dow Jones (YM), E-mini NASDAQ-100 (NQ), VIX Futures (VX), S&P 500 (SP), DJIA (DJIA)
Cryptocurrencies such as Bitcoin (BTC) and Ethereum (ETH)
Functions and Logic of the Script:
COT Calculation: Determines the net positions for commercial actors and large speculators. Also Available are short and long positions of commercials or large speculators.
Position Change Analysis: Analyzes the percentage changes in net positions and open interest data over a period of 6 weeks (Weekly Chart).
Average Value Calculation: Determines short-term and long-term trend averages.
Trend Analysis: Buy and sell signals (represented in colors) are based on linear regressions and average calculations.
Usage and Application Examples:
Ideal for traders looking for a detailed analysis of market dynamics and position changes in the futures market. Suitable for decision-making in transaction timing and assessing market sentiment.
Usage Notes:
Users should be familiar with the interpretation of COT data and basic concepts of futures trading. Particularly suitable for medium to long-term trading strategies.
Intersection Value FunctionsWinning entry for the first Pinefest contest. The challenge required providing three functions returning the intersection value between two series source1 and source2 in the event of a cross, crossunder, and crossover.
Feel free to use the code however you like.
🔶 CHALLENGE FUNCTIONS
🔹 crossValue()
//@function Finds intersection value of 2 lines/values if any cross occurs - First function of challenge -> crossValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossValue(close, close )
🔹 crossoverValue()
//@function Finds intersection value of 2 lines/values if crossover occurs - Second function of challenge -> crossoverValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossoverValue(close, close )
🔹 crossunderValue()
//@function Finds intersect of 2 lines/values if crossunder occurs - Third function of challenge -> crossunderValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossunderValue(close, close )
🔶 DETAILS
A series of values can be displayed as a series of points, where the point location highlights its value, however, it is more common to connect each point with a line to have a continuous aspect.
A line is a geometrical object connecting two points, each having y and x coordinates. A line has a slope controlling its steepness and an intercept indicating where the line crosses an axis. With these elements, we can describe a line as follows:
slope × x + intercept
A cross between two series of values occurs when one series is greater or lower than the other while its previous value isn't.
We are interested in finding the "intersection value", that is the value where two crossing lines are equal. This problem can be approached via linear interpolation.
A simple and direct approach to finding our intersection value is to find the common scaling factor of the slopes of the lines, that is the multiplicative factor that multiplies both lines slopes such that the resulting points are equal.
Given:
A = Point A1 + m1 × scaling_factor
B = Point B1 + m2 × scaling_factor
where scaling_factor is the common scaling factor, and m1 and m2 the slopes:
m1 = Point A2 - Point A1
m2 = Point B2 - Point B1
In our cases, since the horizontal distance between two points is simply 1, our lines slopes are equal to their vertical distance (rise).
Under the event of a cross, there exists a scaling_factor satisfying A = B , which allows us to directly compute our intersection value. The solution is given by:
scaling_factor = (B1 - A1)/(m1 - m2)
As such our intersection value can be given by the following equivalent calculations:
(1) A1 + m1 × (B1 - A1)/(m1 - m2)
(2) B1 + m2 × (B1 - A1)/(m1 - m2)
(3) A2 - m2 × (A2 - B2)/(m1 - m2)
(4) B2 - m2 × (A2 - B2)/(m1 - m2)
The proposed functions use the third calculation.
This approach is equivalent to expressions using the classical line equation, with:
slope1 × x + intercept1 = slope2 × x + intercept2
By solving for x , the intersection point is obtained by evaluating any of the line equations for the obtained x solution.
🔶 APPLICATIONS
The intersection point of two crossing lines might lead to interesting applications and creations, in this section various information/tools derived from the proposed calculations are presented.
This supplementary material is available within the script.
🔹 Intersections As Support/Resistances
The script allows extending the lines of the intersection value when a cross is detected, these extended lines could have applications as support/resistance lines.
🔹 Using The Scaling Factor
The core of the proposed calculation method is the common scaling factor, which can be used to return useful information, such as the position of the cross relative to the x coordinates of a line.
The above image highlights two moving averages (in green and red), the cross-interval areas are highlighted in blue, and the intersection point is highlighted as a blue line.
The pane below shows a bar plot displaying:
1 - scaling factor = 1 -
Values closer to 1 indicate that the cross location is closer to x2 (the right coordinate of the lines), while values closer to 0 indicate that the cross location is closer to x1 .
🔹 Intersection Matrix
The main proposed functions of this challenge focus on the crossings between two series of values, however, we might be interested in applying this over a collection of series.
We can see in the image above how the lines connecting two points intersect with each other, we can construct a matrix populated with the intersection value of two corresponding lines. If (X, Y) represents the intersection value between lines X and Y we have the following matrix:
| Line A | Line B | Line C | Line D |
-------|--------|--------|--------|--------|
Line A | | (A, B) | (A, C) | (A, D) |
Line B | (B, A) | | (B, C) | (B, D) |
Line C | (C, A) | (C, B) | | (C, D) |
Line D | (D, A) | (D, B) | (D, C) | |
We can see that the upper triangular part of this matrix is redundant, which is why the script does not compute it. This function is provided in the script as intersectionMatrix :
//@function Return the N * N intersection matrix from an array of values
//@param array_series (array) array of values, requires an array supporting historical referencing
//@returns (matrix) Intersection matrix showing intersection values between all array entries
In the script, we create an intersection matrix from an array containing the outputs of simple moving averages with a period in a specific user set range and can highlight if a simple moving average of a certain period crosses with another moving average with a different period, as well as the intersection value.
🔹 Magnification Glass
Crosses on a chart can be quite small and might require zooming in significantly to see a detailed picture of them. Using the obtained scaling factor allows reconstructing crossing events with an higher resolution.
A simple supplementary zoomIn function is provided to this effect:
//@function Display an higher resolution representation of intersecting lines
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@param css1 (color) color of source 1 line
//@param css2 (color) color of source 2 line
//@param intersec_css (color) color of intersection line
//@param area_css (color) color of box area
Users can obtain a higher resolution by modifying the provided "Resolution" setting.
The function returns a higher resolution representation of the most recent crosses between two input series, the intersection value is also provided.
Monthly beta (5Y monthly) with multi-timeframe supportThe PROPER way to calculate beta for a stock using monthly price returns . None of this nonsense using daily returns and sliding windows as done by other scripts...
Works on any timeframe.
This script has been checked against 100s of stocks on Yahoo finance and Zacks research data and matches 100% (some rounding error as this script is kept updated live on unconfirmed monthly bars).
You can check for yourself:
Zacks fundamentals - beta
The script calculates beta using the Variance-Covariance Method as described on Investopedia
How to calculate Beta
New York Sessions Morning, Lunch and afternoon. AMKDescription
The script is designed to highlight the New York Stock Exchange's trading day, broken down into three specific sub-sessions: morning, lunchtime, and afternoon. Each sub-session is color-coded to provide an immediate visual cue about which portion of the trading day is currently active. Additionally, this script allows the user to adjust the time zone offset, making it adaptable for traders in different time zones around the world.
Originality
While there are scripts that highlight the entire trading day or specific market hours, this script adds granularity by breaking down the New York trading session into its typical behavioral parts: the morning rush, the lunchtime lull, and the afternoon action. The addition of an adjustable time zone offset is a unique feature that makes the tool more versatile and accommodating to a global user base.
Usefulness
The ability to visualize these different trading sessions can be valuable for various types of traders:
Day Traders: The script helps to immediately identify which session they are in, aiding in their trading strategy as market behavior can vary between these periods.
Swing Traders: They may use these sub-sessions to time their entries or exits, especially if they're based in different time zones.
Market Analysts: The color-coded sessions provide a quick way to analyze the historical performance and volatility of an asset during different trading periods.
Global Traders: The time zone adjustment feature makes it easy for traders outside of the Eastern Time Zone to customize the script according to their local time, increasing its utility across different markets.
Educational Purpose: For new traders, this could serve as an educational tool to understand the typical behavior of the stock market at different times of the day.
So, whether you're timing an intraday entry or looking for patterns tied to specific market sessions, this script offers a straightforward, visual way to keep track of where you are in the trading day.
Anchored Average Price by Atilla Yurtseven (AAP)Anchored Average Price indicator is designed to pinpoint a specific date and price in a given financial instrument's price chart. Once anchored to the desired date and price level, the script calculates and displays the average price from that anchor point to the current day.
Features
Customizable Source: Allows users to choose the source data for calculations. By default, it uses hlc3, which is the average of high, low, and close prices.
Start Date Input: The script includes a timestamp-based input that allows the user to specify the anchor date easily.
Customizable Color: Users can change the color of the plotted average line, adding an additional layer of customization to the visual representation.
Code Mechanics
Initialization: Declares the variables and arrays required for calculations and display. The array is used to store price data.
Condition Check: Only starts storing and calculating data if the chart's time is equal to or greater than the user-defined start date.
Data Storing: Once the condition is met, the script pushes the src price data into the array for future averaging.
Average Calculation: It calculates the average price of the values stored in the array.
Data Clearing: If the condition is not met, the array is cleared, and no average is plotted.
Plotting: The average price is plotted on the chart with the user-defined color.
By incorporating these features and mechanics, AAP provides traders and investors with a powerful tool for assessing average prices anchored to a specific date or swing.
Disclaimer:
This TradingView script is intended for educational and informational purposes only and should not be considered as investment or trading advice. Past performance is not indicative of future results. Trading and investing carry a high level of risk, and you should consult with a qualified financial advisor before making any financial decisions. The creator of this script, Atilla Yurtseven, is not responsible for any losses or damages incurred as a result of using this script.
Trade smart, stay safe
Atilla Yurtseven
VWAP (Any Anchor)Hello Traders,
Introduction:
The Volume Weighted Average Price (VWAP) is a powerful trading indicator used to gauge the average price at which an asset has traded, weighted by volume, over a specific period.
One of the key factors that can significantly impact the effectiveness of VWAP is the concept of "anchoring." In this TradingView indicator script description, we'll explore the concept of anchoring and how it's integrated into a customizable VWAP indicator.
Understanding Anchoring:
Anchoring in VWAP refers to selecting a specific point in time from which the VWAP calculation begins.
This "anchor point" serves as the starting reference for VWAP, and it can substantially impact the indicator's behavior and interpretation.
Anchoring allows traders to adapt VWAP to different trading strategies and scenarios.
Here are some common anchor points used in the script and their significance:
1. Time-Based Anchors: Traders often anchor VWAP to specific times of the trading day, such as the market open (e.g., 9:30 am EST) or close (e.g., 4:00 pm EST).
You could add in the script any time-based anchor you think is relevant for your trading.
2. Event-Based Anchors: Anchoring can also be based on specific market events.
For example, some traders anchor VWAP to events like "3 Consecutive Green Candles" or "Supertrend" direction changes.
Feel free to adapt the script here and add the relevant events-based anchor for your trading.
3. Multi-Timeframe Anchoring: Traders can anchor VWAP on different timeframes, allowing them to analyze price and volume interactions across various horizons.
This flexibility is especially valuable for swing traders adapting to longer-term trends.
Anchor Selection
Traders can choose from various anchor points, including time-based, event-based, and even an "External Connector" for flexibility in adapting VWAP to specific scenarios.
The External connector is the output from another script used in this VWAP script.
Your script may have a condition being “true” whenever a signal is printed - you can use this signal as the anchor for the VWAP.
Conclusion:
Understanding anchoring in VWAP is essential for traders using this indicator effectively.
Choosing and customizing anchor points empowers traders to adapt VWAP to their specific trading styles and strategies.
Whether focused on intraday precision or analyzing longer-term trends, a customizable VWAP indicator with flexible anchoring options can be valuable to your trading toolkit.
Tailor your VWAP to your unique needs and gain deeper insights into market trends and price action.
Made with love
Dave
Spot-Vol CorrelationSpot-Vol Correlation Script Guide
Purpose:
This TradingView script measures the correlation between percentage changes in the spot price (e.g., for SPY, an ETF that tracks the S&P 500 index) and the changes in volatility (e.g., as indicated by the VIX, the Volatility Index). Its primary objective is to discern whether the relationship between spot price and volatility behaves as expected ("normal" condition) or diverges from the expected pattern ("abnormal" condition).
Normal vs. Abnormal Correlation:
Normal Correlation: Historically, the VIX (or volatility) and the spot price of major indices like the S&P 500 have an inverse relationship. When the spot price of the index goes up, the VIX tends to go down, indicating lower volatility. Conversely, when the index drops, the VIX generally rises, signaling increased volatility.
Abnormal Correlation: There are instances when this inverse relationship doesn't hold, and both the spot price and the VIX move in the same direction. This is considered an "abnormal" condition and might indicate unusual market dynamics, potential uncertainty, or impending shifts in market sentiment.
Using the Script:
Inputs:
First Symbol: This is set by default to VIX, representing volatility. However, users can input any other volatility metric they prefer.
Second Symbol: This is set to SPY by default, representing the spot price of the S&P 500 index. Like the first symbol, users can substitute SPY with any other asset or index of their choice.
Length of Calculation Period: Users can define the lookback period for the correlation calculation. By default, it's set to 10 periods (e.g., days for a daily chart).
Upper & Lower Bounds of Normal Zone: These parameters define the range of correlation values that are considered "normal" or expected. By default, this is set between -0.60 and -1.00.
Visuals:
Correlation Line: The main line plot shows the correlation coefficient between the two input symbols. When this line is within the "normal zone", it indicates that the spot price and volatility are inversely correlated. If it's outside this zone, the correlation is considered "abnormal".
Green Color: Indicates a period when the spot price and VIX are behaving as traditionally expected (i.e., one rises while the other falls).
Red Color: Denotes a period when the spot price and VIX are both moving in the same direction, which is an abnormal condition.
Shaded Area (Normal Zone): The area between the user-defined upper and lower bounds is shaded in green, highlighting the range of "normal" correlation values.
Interpretation:
Monitor the color and position of the correlation line relative to the shaded area:
If the line is green and within the shaded area, the market dynamics are as traditionally expected.
If the line is red or outside the shaded area, users should exercise caution as this indicates a divergence from typical behavior, which can precede significant market moves or heightened uncertainty.
Intraday Volatility Bands [Honestcowboy]The Intraday Volatility Bands aims to provide a better alternative to ATR in the calculation of targets or reversal points.
How are they different from ATR based bands?
While ATR and other measures of volatility base their calculations on the previous bars on the chart (for example bars 1954 to 1968). The volatility used in these bands measure expected volatility during that time of the day.
Why would you take this approach?
Markets behave different during certain times of the day, also called sessions.
Here are a couple examples.
Asian Session (generally low volatility)
London Session (bigger volatility starts)
New York Session (overlap of New York with London creates huge volatility)
Generally when using bands or channel type indicators intraday they do not account for the upcoming sessions. On London open price will quickly spike through a bollinger band and it will take some time for the bands to adjust to new volatility.
This script will show expected volatility targets at the start of each new bar and will not adjust during the bar. It already knows what price is expected to do at this time of day.
Script also plots arrows when price breaches either the top or bottom of the bands. You can also set alerts for when this occurs. These are non repainting as the script knows the level at start of the bar and does not change.
🔷 CALCULATION
Think of this script like an ATR but instead it uses past days data instead of previous bars data. Charts below should visualise this more clearly:
The scripts measure of volatility is based on a simple high-low.
The script also counts the number of bars that exist in a day on your current timeframe chart. After knowing that number it creates the matrix used in it's calculations and data storage.
See how it works perfectly on a lower timeframe chart below:
Getting this right was the hardest part, check the coding if you are interested in this type of stuff. I commented every step in the coding process.
🔷 SETTINGS
Every setting of the script has a tooltip but I provided a breakdown here:
Some more examples of different charts:
Filtered Volume Profile [ChartPrime]The "Filtered Volume Profile" is a powerful tool that offers insights into market activity. It's a technical analysis tool used to understand the behavior of financial markets. It uses a fixed range volume profile to provide a histogram representing how much volume occurred at distinct price levels.
Profile in action with various significant levels displayed
How to Use
The script is designed to analyze cumulative trading volumes in different price bins over a certain period, also known as `'lookback'`. This lookback period can be defined by the user and it represents the number of bars to look back for calculating levels of support and resistance.
The `'Smoothing'` input determines the degree to which the output is smoothed. Higher values lead to smoother results but may impede the responsiveness of the indicator to rapid changes in volatility.
The `'Peak Sensitivity'` input is used to adjust the sensitivity of the script's peak detection algorithm. Setting this to a lower value makes the algorithm more sensitive to local changes in trading volume and may result in "noisier" outputs.
The `'Peak Threshold'` input specifies the number of bins that the peak detection mechanism should account for. Larger numbers imply that more volume bins are taken into account, and the resultant peaks are based on wider intervals.
The `'Mean Score Length'` input is used for scaling the mean score range. This is particularly important in defining the length of lookback bars that will be used to calculate the average close price.
Sinc Filter
The application of the sinc-filter to the Filtered Volume Profile reduces the risk of viewing artefacts that may misrepresent the underlying market behavior. Sinc filtering is a high-quality and sharp filter that doesn't manifest any ringing effects, making it an optimal choice for such volume profiling.
Histogram
On the histogram, the volume profile is colored based on the balance of bullish to bearish volume. If a particular bar is more intense in color, it represents a larger than usual volume during a single price bar. This is a clear signal of a strong buying or selling pressure at a particular price level.
Threshold for Peaks
The `peak_thresh` input determines the number of bins the algorithm takes in account for the peak detection feature. The 'peak' represents the level where a significant amount of volume trading has occurred, and usually is of interest as an indicative of support or resistance level.
By increasing the `peak_thresh`, you're raising the bar for what the algorithm perceives as a peak. This could result in fewer, but more significant peaks being identified.
History of Volume Profiles and Evolution into Sinc Filtering
Volume profiling has a rich history in market analysis, dating back to the 1950s when Richard D. Wyckoff, a legendary trader, introduced the concept of volume studies. He understood the critical significance of volume and its relationship with market price movement. The core of Wyckoff's technical analysis suite was the relationship between prices and volume, often termed as "Effort vs Results".
Moving forward, in the early 1800s, the esteemed mathematician J. R. Carson made key improvements to the sinc function, which formed the basis for sinc filtering application in time series data. Following these contributions, trading studies continued to create and integrate more advanced statistical measures into market analysis.
This culminated in the 1980s with J. Peter Steidlmayer’s introduction of Market Profile. He suggested that markets were a function of continuous two-way auction processes thus introducing the concept of viewing markets in price/time continuum and price distribution forms. Steidlmayer's Market Profile was the first wide-scale operation of organized volume and price data.
However, despite the introduction of such features, challenges in the analysis persisted, especially due to noise that could misinform trading decisions. This gap has given rise to the need for smoothing functions to help eliminate the noise and better interpret the data. Among such techniques, the sinc filter has become widely recognized within the trading community.
The sinc filter, because of its properties of constructing a smooth passing through all data points precisely and its ability to eliminate high-frequency noise, has been considered a natural transition in the evolution of volume profile strategies. The superior ability of the sinc filter to reduce noise and shield against over-fitting makes it an ideal choice for smoothing purposes in trading scripts, particularly where volume profiling forms the crux of the market analysis strategy, such as in Filtered Volume Profile.
Moving ahead, the use of volume-based studies seems likely to remain a core part of technical analysis. As long as markets operate based on supply and demand principles, understanding volume will remain key to discerning the intent behind price movements. And with the incorporation of advanced methods like sinc filtering, the accuracy and insight provided by these methodologies will only improve.
Mean Score
The mean score in the Filtered Volume Profile script plays an important role in probabilistic inferences regarding future price direction. This score essentially characterizes the statistical likelihood of price trends based on historical data.
The mean score is calculated over a configurable `'Mean Score Length'`. This variable sets the window or the timeframe for calculation of the mean score of the closing prices.
Statistically, this score takes advantage of the concept of z-scores and probabilities associated with the t-distribution (a type of probability distribution that is symmetric and bell-shaped, just like the standard normal distribution, but has heavier tails).
The z-score represents how many standard deviations an element is from the mean. In this case, the "element" is the price level (Point of Control).
The mean score section of the script calculates standard errors for the root mean squared error (RMSE) and addresses the uncertainty in the prediction of the future value of a random variable.
The RMSE of a model prediction concerning observed values is used to measure the differences between values predicted by a model and the values observed.
The lower the RMSE, the better the model is able to predict. A zero RMSE means a perfect fit to the data. In essence, it's a measure of how concentrated the data is around the line of best fit.
Through the mean score, the script effectively predicts the likelihood of the future close price being above or below our identified price level.
Summary
Filtered Volume Profile is a comprehensive trading view indicator which utilizes volume profiling, peak detection, mean score computations, and sinc-filter smoothing, altogether providing the finer details of market behavior.
It offers a customizable look back period, smoothing options, and peak sensitivity setting along with a uniquely set peak threshold. The application of the Sinc Filter ensures a high level of accuracy and noise reduction in volume profiling, making this script a reliable tool for gaining market insights.
Furthermore, the use of mean score calculations provides probabilistic insights into price movements, thus providing traders with a statistically sound foundation for their trading decisions. As trading markets advance, the use of such methodologies plays a pivotal role in formulating effective trading strategies and the Filtered Volume Profile is a successful embodiment of such advancements in the field of market analysis.
Bullish Divergence Short-term Long Trade FinderThis script is a Bullish divergence trade finder built to find small periods where Bitcoin will likely rise from. It looks for bullish divergence followed by a higher low as long as the hour RSI value is below the 40 mark, if then it will enter an long. It marks out Buy signals on the RSI if the value dips below 'RSI Bull Condition Minimum' (Default 40) on the current time frame in view. It also marks out Sell signals found when the RSI is above the 'RSI Bearish Condition Minimum' (Default 50). The sell signals are bearish divergence that has occurred recently on the RSI. When a long is in play it will sell if it finds bearish divergence or the time frame in view reaches RSI value higher than the 'RSI Sell Value'(Default 75). You can set your stop loss value with the 'Stop loss Percentage' (default 5).
Available inputs:
RSI Period: relative strength measurement length(Typically 14)
RSI Oversold Level: the bottom bar of the RSI (Typically 30)
RSI Overbought Level: the top bar of the RSI (Typically 70)
RSI Bearish Condition Minimum: The minimum value the script will use to look for a pivot high that starts the Bearish condition to Sell (Default 50)
RSI Bearish Condition Sell Min: the minimum value the script will accept a bearish condition (Default 60)
RSI Bull Condition Minimum: the minimum value it will consider a pivot low value in the RSI to find a divergence buy (Default 40)
Look Back this many candles: the amount of candles thee script will look back to find a low value in the RSI (Default 25)
RSI Sell Value: The RSI value of the exit condition for a long when value is reached (Default 75)
Stop loss Percentage: Percentage value for amount to lose (Default 5)
The formula to enter a long is stated below:
If price finds a lower low and there is a higher low found following a lower low and price has just made another dip and price closes lower than the last divergence and Relative strength index hour value is less than 40 enter a long.
The formula to exit a long is stated below:
If the value drops below the stop loss percentage OR (the RSI value is greater than the value of the parameter 'RSI Sell Value' or bearish divergence is found greater than the parameter 'RSI Bearish Condition Minimum' )
This script was built from much strategy testing on BTC but works with alts (occasionally) also. It is most successful to my knowledge using the 15 min and 7 min time frames with default values. Hope it helps! Follow for further possible updates to this script or other entry or exit strategies.
snapshot:
I only have a Pro trading view account so I cannot share a larger data set about this script because the buy signals happen pretty rarely. The most amount that I could find within a view for me was 40 trades within a viewable time. The suggested/default parameters that I have do not occur very often so it limits the data set. Adjustments can be made to the parameters so that trades can be entered more often. The scripts success is dependent on the values of the parameters set by the user. This script was written to be used for BTC/USD or BTC/USDT trading. I am unable to share a larger dataset without putting out results that are intended to fail or having a premium account so reaching the 100 trade minimum is not possible with my account.